Understanding Object-Oriented Programs with Declarative Event Analysis

نویسندگان

  • Tamar Richner
  • Stéphane Ducasse
  • Roel Wuyts
چکیده

Understanding how components in an application interact to ensure a certain functionality is an essential aspect of understanding a software application. To obtain this kind of information an analysis of the dynamic behavior of an application is more appropriate than a static analysis of the code. Understanding dynamic behavior through event analysis is a challenge because of the large amount of data gathered through program executions. In this paper, we show how we define declarative queries that allow us to filter the event data collected and to define new abstractions which aid in program understanding. 1 Program Understanding through Queries and Views Program understanding is an important aspect of software engineering. It is essential in the maintainance and reengineering of a system, and especially critical for extending and using frameworks. While documentation should address the program understanding problem, it is often not up-to-date, or missing altogether, and in general does not cover all aspects of an application and as such may not at all address the particular aspect an engineer is interested in. The best remedy for this lack of appropriate documentation is to allow an engineer to extract documentation from the application for the particular aspect of interest. We believe that a good tool for program understanding should allow an engineer to formulate hypotheses about the structure of the software, and to confirm or reject hypotheses based on evidence from the source code. One such tool is described by Murphy in [MN97]. It allows an engineer to define a high-level model of the software system and a mapping of the source-code onto this model. A ’reflexion model’ is then computed which shows how close the high-level model comes to describing the source code. This allows the engineer to iteratively refine the high-level model, so that it better reflects the implementation. This is a promising approach: an engineer can choose what to query depending on his strategy for understanding the code and on the aspect he is particularly interested in. Each query about an hypothesis gives a view of the software system, and different views can also be combined to get a better understanding of the software [YHC97]. Institut für Informatik (IAM), Universität Bern, Neubrückstrasse 10, 3012 Berne, Switzerland (richner,ducasse)@iam.unibe.ch, http://www.iam.unibe.ch/ (richner,ducasse)/ yPleinlaan 2, 1050 Brussels, Belgium [email protected], http://progwww.vub.ac.be/ rwuyts/

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Declarative Semantics in Object-Oriented Software Development - A Taxonomy and Survey

One of the modern paradigms to develop an application is object oriented analysis and design. In this paradigm, there are several objects and each object plays some specific roles in applications. In an application, we must distinguish between procedural semantics and declarative semantics for their implementation in a specific programming language. For the procedural semantics, we can write a ...

متن کامل

Declarative Reasoning about the Structure of Object-Oriented Systems

The structure of object-oriented systems typically forms a complicated, tangled web of interdependent classes. Understanding this implicit and hidden structure poses severe problems to developers and maintainers who want to use, extend or adapt those systems. This paper advocates the use of a logic meta-language to express and extract structural relationships in class-based object-oriented syst...

متن کامل

Declarative Events for Object-Oriented Programming

In object-oriented designs inversion of control is achieved by an event-driven programming style based on imperatively triggered events. An alternative approach can be found in aspect-oriented programming, which de nes events as declarative queries over implicitly available events. This helps to localize de nition of events and avoid preplanning, but lacks a clean integration with object-orient...

متن کامل

Modeling and Evaluation of Stochastic Discrete-Event Systems with RayLang Formalism

In recent years, formal methods have been used as an important tool for performance evaluation and verification of a wide range of systems. In the view points of engineers and practitioners, however, there are still some major difficulties in using formal methods. In this paper, we introduce a new formal modeling language to fill the gaps between object-oriented programming languages (OOPLs) us...

متن کامل

Modeling and Evaluation of Stochastic Discrete-Event Systems with RayLang Formalism

In recent years, formal methods have been used as an important tool for performance evaluation and verification of a wide range of systems. In the view points of engineers and practitioners, however, there are still some major difficulties in using formal methods. In this paper, we introduce a new formal modeling language to fill the gaps between object-oriented programming languages (OOPLs) us...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1998